package StudentProject.jdbc;

import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * 将连接进行封装
 */
public class JDBCUtils {
    private static String driver;
    private static String url;
    private static String user;
    private static String password;



    //静态语块
    static {
        //使用流的形式读取到db资源包
        //getClassLoader负责搜索类文件，并在内存中生成对应的 Class 对象
        //getResourceAsStream获取输入流，以字符的心事获取
        InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("db.properties");

        //创建properties类型的对象加载文件
        Properties p = new Properties();
        try {
            //获取到流文件
            p.load(is);
            //得到key
            driver = p.getProperty("driver");
             url = p.getProperty("url");
             user = p.getProperty("username");
             password = p.getProperty("password");

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("驱动加载失败");
        }
    }

    //获得连接对象的方法
    public static Connection getConnection(){
        try {

            return DriverManager.getConnection(url,user,password);
        } catch (SQLException e) {
            System.out.println("驱动连接失败");
            e.printStackTrace();
        }
        return null;
    }

    //关闭，释放资源
    public static void close(Connection conn, Statement statement, ResultSet resultSet){
        try{
            if (resultSet != null){
                resultSet.close();
                resultSet = null;
            }
            if (statement != null){
                statement.close();
                statement = null;
            }
            if (conn != null){
                conn.close();
                conn = null;
            }

        } catch (SQLException e){
            e.printStackTrace();
            System.out.println("关闭失败");
        }
    }


}
